package cc.shacocloud.luanniao.core.service.ai.doubao

import cc.shacocloud.luanniao.core.model.constant.AiModelTypeEnum
import cc.shacocloud.luanniao.core.service.ai.AiOptions
import jakarta.validation.Valid
import jakarta.validation.constraints.NotBlank
import org.hibernate.validator.constraints.Length

/**
 * 豆包大模型配置
 * @author 思追(shaco)
 */
data class DoubaoAiOptions(

    /**
     * 接口访问令牌
     */
    @field:NotBlank
    @field:Length(max = 128)
    val apiKey: String,

    /**
     * 请求的基础递增
     */
    @field:NotBlank
    @field:Length(max = 255)
    val baseUrl: String,

    /**
     * 模型端点id
     */
    @field:NotBlank
    @field:Length(max = 128)
    val endpointId: String,

    /**
     * 模型默认属性
     */
    @field:Valid
    val defaultOptions: DoubaoChatOptions,
) : AiOptions(type = AiModelTypeEnum.DOUBAO) {

}
